home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1996 September / JCSM Shareware Collection (JCS Distribution) (September 1996).ISO / prgtools / pbvl010.zip / TUTOR3_1.BAS < prev    next >
BASIC Source File  |  1994-02-10  |  2KB  |  87 lines

  1. '┌─────────────────────────────────────────────────────────────────────────┐
  2. '│    FILE: TUTOR3_1.BAS                                                   │
  3. '│ PURPOSE: PB/VISION(tm) LITE Tutorial Example Program                    │
  4. '├─────────────────────────────────────────────────────────────────────────┤
  5. '│ For instant help on any PB/VISION(tm) keyword, place the cursor on that │
  6. '│ keyword and press <CTRL-F1>.  The PB/VISION(tm) index can be accessed   │
  7. '│ by pressing <SHIFT-F1> twice.  The file "PBVLITE.PBH" _must_ be in the  │
  8. '│ same directory as the PowerBASIC IDE (PB.EXE) for this feature to work  │
  9. '│ properly.                                                               │
  10. '└─────────────────────────────────────────────────────────────────────────┘
  11.  
  12. %ISPBU = 0
  13.  
  14. DEFINT A-Z
  15. $DYNAMIC
  16.  
  17. $INCLUDE ".\WINDOW.BI"
  18. $INCLUDE ".\EVENT.BI"
  19. $INCLUDE ".\MOUSE.BI"
  20.  
  21.     APP.GRAPHICSMODE = 1
  22.     APP.GRAPHICSMOUSE = 1
  23.  
  24.     APPTITLE &HB0, "AN INTRODUCTION TO MULTI-THREADING"
  25.  
  26.     APPINIT
  27.  
  28.     GottaMouse% = MOUSEINIT(buttons%)
  29.     MOUSECURSORON
  30.  
  31.     winflags = %SHADOW OR %DRAGBAR OR %CONTROL OR %RESIZE OR %MINMAX
  32.  
  33.     win1% = WINPOPUP(0, 0, 10, 50, &H9F, 1, &H9F, "YourRoutine() Window", &HCF, winflags)
  34.  
  35.  
  36. ' ─ ■ 6.1.1 - ASSIGNING CODE TO A WINDOW ─────────────────────────────────
  37.  
  38.     WININSTALLCODE win1%, CODESEG(YourRoutine), CODEPTR(YourRoutine)
  39.  
  40.     DO
  41.  
  42.         eventNo = GETEVENT(0)
  43.  
  44.         SELECT CASE eventNo
  45.  
  46.             CASE 102
  47.                 EXIT DO
  48.  
  49.             CASE ELSE
  50.  
  51.         END SELECT
  52.  
  53.     LOOP
  54.  
  55.     MOUSECURSOROFF
  56.     APPCLOSE
  57.  
  58.     END
  59.  
  60.  
  61. ' ─ ■ 6.1.2 - SYNTAX OF A WINDOW ROUTINE ────────────────────────────────
  62.  
  63. FUNCTION YourRoutine% (BYVAL handle%, BYVAL eventNo%, BYVAL parm1%, BYVAL parm2%)
  64.  
  65. ' ─ ■ 6.1.3 - PROCESSING EVENTS IN A WINDOW ROUTINE ─────────────────────
  66.  
  67.     SELECT CASE eventNo
  68.  
  69.         CASE 203                ' control box clicked
  70.             eventNo% = 102
  71.  
  72.         CASE 217                ' window clicked while minimized
  73.             WINNORMALIZE handle
  74.  
  75.         CASE ELSE
  76.  
  77.     END SELECT
  78.  
  79.     WINWRITELN handle%, "Event" + STR$(eventNo%) + " in YourRoutine()"
  80.  
  81. ' ─ ■ 6.1.4 - RETURNING THE EVENT CODE BACK TO GETEVENT() ────────────────
  82.  
  83.     YourRoutine% = eventNo%         ' return this event code
  84.  
  85. END FUNCTION
  86.  
  87.